// N = 2^32/365/24/60/60 = 136 年

/*时间结构体*/
struct rtc_time systmtime;

/**
  * @brief  延时等待上电后的I/O引脚电平稳定
  * @param  无
  * @retval 无
  */
void  Wait_for_stability  ( void )
{
	uint8_t num = 0;
	uint8_t time = 40;
	while(time)
	{
		for(num = 0 ;num < 10; num ++)
		{
			/*****检测旋转电机开关的状态*****/
			check_Rotary_state(num);						
			/*****检测推杆电机开关的状态*****/
			check_Pushrod_state(num);		
		}
		time--;
	}
}


/**
  * @brief  主函数
  * @param  无0
  * @retval 无
  */
int main(void)
{	
		
	SysTick_Init();
	
	RTC_NVIC_Config();  									/* 配置RTC秒中断优先级 */	
	
	BASIC_TIM_Init();				   						//定时器
	
	RS485_Config();												//串口配置	
		
	RS232_USART_Config();									//串口配置	

	Motor_Init();													//电机配置初始化
	
	RTC_CheckAndConfig(&systmtime);				//RTC 时钟初始化	
	
#if DEBUG_LOG	
	printf("\r\n广州彩耘生态科技有限公司\r\n");
	printf("\r\n电机控制板\r\n");
#endif	
	
#if	hardware_test	
	/****测试硬件*****/	
	testing_hardware(3);	
//	all_testing_hardware();
#endif
	
#if	WinDog
		IWDG_Init(IWDG_Prescaler_64,1250); 		//看门狗溢出时间2s 
#endif
	
	/****等待上电后的I/O引脚电平稳定******/
	Wait_for_stability();								
	/****读取rtc寄存器中的参数**********/
	read_rtc_data_bkp();									
	/***调用初始化队列函数********/    
	InitQueue(&Computer_Queue);  	
	
	while(1)
	{
		
		#if	WinDog
				IWDG_Feed();
		#endif
		
		#if OQC_System		
				/**all 测试出货通道***/
				test_outgoing_quality_control();
		#endif	
		
		FSM_functions( Process_buf );				/*事件处理状态机*/		
		
		Sending_Upper_Computer_Queue();			/**队列发送上位机通讯**/
		
	}	
}

/*********************************************END OF FILE**********************/
